/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package br.edu.unipampa.personagem;

import br.edu.unipampa.recurso.ArmaDeAtaque;
import br.edu.unipampa.recurso.ArmaDeDefesa;
import br.edu.unipampa.recurso.Recurso;
import utilitarios.Utilitarios;

public class Pessoa {
    protected int hpTotal;
    protected String nome;
    protected String descricao;
    protected int modificadorDeCombate;
    protected Recurso itens[] = new Recurso[10];
    protected int hp;
     public Recurso[] getItens() {
        return itens;
    }

    public void setItens(Recurso[] itens) {

        this.itens = itens;
    }
    
    
    public String getNome() {
        return nome;
    }

    public void setNome(String nome) {
        this.nome = nome;
    }

    /**
     * @return the descricao
     */
    public String getDescricao() {
        return descricao;
    }

    /**
     * @param descricao the descricao to set
     */
    public void setDescricao(String descricao) {
        this.descricao = descricao;
    }

    /**
     * @return the modificadorDeCombate
     */
    public int getModificadorDeCombate() {
        return modificadorDeCombate;
    }

    /**
     * @param modificadorDeCombate the modificadorDeCombate to set
     */
    public void setModificadorDeCombate(int modificadorDeCombate) {
        this.modificadorDeCombate = modificadorDeCombate;
    }

    /**
     * @param itens the itens to set
     */
   
    /**
     * @return the hp
     */
    public int getHp() {
        return hp;
    }

    /**
     * @param hp the hp to set
     */
    public void setHp(int hp) {
        if(hp < 0){
        this.hp = 0;
    }else if((hp > hpTotal)){
            this.hp = hpTotal;
        }else{
        this.hp = hp;
    }

  
}

    /**
     * @return the hpTotal
     */
    public int getHpTotal() {
        return hpTotal;
    }

    /**
     * @param hpTotal the hpTotal to set
     */
    public void setHpTotal(int hpTotal) {
        if((hpTotal) < 0){
            this.hpTotal = 0;
        }else{
        this.hpTotal = hpTotal;
    }
    }
    public String atacar(Pessoa atacante, Pessoa atacado, ArmaDeAtaque armaUtilizada){
        Utilitarios util = new Utilitarios();
        int defesa;
        int danoAplicado;
        
        ArmaDeDefesa armaDef = null;
        if(atacado.isMorto()){
            return "O "+atacado+" está morto";}
        for (int i = 0; i < atacado.getItens().length; i++) {
            
            if((atacado.getItens()[i].getClass().getName().equalsIgnoreCase("br.edu.unipampa.recurso.ArmaDeDefesa"))){
                Recurso r = atacado.getItens()[i];
                armaDef = (ArmaDeDefesa)r;
                
                
            }
        }
        if(armaDef == null){
            danoAplicado = util.random() + armaUtilizada.getDano() + atacante.getModificadorDeCombate();
            
        }else{
        defesa = armaDef.getDefesa();
         danoAplicado = util.random() + armaUtilizada.getDano() + atacante.getModificadorDeCombate() - defesa;
            
        }
        atacado.setHp(atacado.getHp() - danoAplicado);
        if(atacado.isMorto()){
            
            return  "O "+atacado.getNome()+" recebeu "+danoAplicado+" de dano. "+atacado.getNome()+"está morto";
        }else{
        return "O "+atacante.getNome()+" inflingiu "+danoAplicado+" de dano ao "+atacado.getNome();
        }
    
    }
public boolean isMorto(){
        if(getHp() == 0){
            return true;
        }else if((getHp() != 0)){
            return false;
        }else{
            return false;
        }
        
    }

public String Combate(Pessoa personagem1, Pessoa personagem2){
    
    return "";
}
   
}

